﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="DomainSchema" targetNamespace="http://schemas.microsoft.com/dsltools/Domain" elementFormDefault="qualified" xmlns="http://schemas.microsoft.com/dsltools/Domain" xmlns:core="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core"  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import id="CoreSchema" namespace="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" />
  <!-- BizAppDomainModel -->
  <xsd:element name="bizAppDomainModel" type="BizAppDomainModel" substitutionGroup="core:modelElement" />
  <xsd:complexType name="BizAppDomainModel">
    <xsd:annotation>
      <xsd:documentation>The root in which all other elements are embedded. Appears as a diagram.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: BizAppDomainModelHasModules -->
          <xsd:element name="modules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of BizAppDomainModelHasModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="bizAppDomainModelHasModules">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from BizAppDomainModelHasModules needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="module" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: BizAppDomainModelHasDomainElements -->
          <xsd:element name="domainElements" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of BizAppDomainModelHasDomainElements</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="bizAppDomainModelHasDomainElements">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from BizAppDomainModelHasDomainElements needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="domainElements" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: BizAppDomainModelHasAggregates -->
          <xsd:element name="aggregates" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of BizAppDomainModelHasAggregates</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="bizAppDomainModelHasAggregates">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from BizAppDomainModelHasAggregates needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="aggregate" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: BizAppDomainModelHasCRUDApplicationServices -->
          <xsd:element name="cRUDApplicationServices" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of BizAppDomainModelHasCRUDApplicationServices</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="bizAppDomainModelHasCRUDApplicationServices">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from BizAppDomainModelHasCRUDApplicationServices needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="cRUDApplicationService" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- dslVersion -->
        <xsd:attribute name="dslVersion" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Version of the model serialized in this file.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: NameSpace -->
        <xsd:attribute name="nameSpace" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModel Moniker -->
  <xsd:element name="bizAppDomainModelMoniker" type="BizAppDomainModelMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="BizAppDomainModelMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for BizAppDomainModel instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Entity -->
  <xsd:element name="entity" type="Entity" substitutionGroup="domainClass" />
  <xsd:complexType name="Entity">
    <xsd:annotation>
      <xsd:documentation>Elements embedded in the model. Appear as boxes on the diagram.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainClass">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: EntityHasUniqueConstraints -->
          <xsd:element name="uniqueConstraints" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasUniqueConstraints</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="entityHasUniqueConstraints">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from EntityHasUniqueConstraints needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="uniqueConstraint" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityHasAttributes -->
          <xsd:element name="attributes" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasAttributes</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="entityHasAttributes">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from EntityHasAttributes needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="attribute" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: EntityType -->
        <xsd:attribute name="entityType" type="EntityTypeEnum" >
          <xsd:annotation>
            <xsd:documentation>Shows if the entity is master (or referenced) data or event data</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsHistorized -->
        <xsd:attribute name="isHistorized" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Every modification action will generate a new version of the entity</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsExternal -->
        <xsd:attribute name="isExternal" type="xsd:boolean" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Entity Moniker -->
  <xsd:element name="entityMoniker" type="EntityMoniker" substitutionGroup="domainClassMoniker" />
  <xsd:complexType name="EntityMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Entity instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainClassMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ListOfValues -->
  <xsd:element name="listOfValues" type="ListOfValues" substitutionGroup="domainClass" />
  <xsd:complexType name="ListOfValues">
    <xsd:complexContent>
      <xsd:extension base="DomainClass">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: ListOfValuesHasValues -->
          <xsd:element name="values" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ListOfValuesHasValues</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="listOfValuesHasValues">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from ListOfValuesHasValues needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="value" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: UserEditable -->
        <xsd:attribute name="userEditable" type="xsd:boolean" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ListOfValues Moniker -->
  <xsd:element name="listOfValuesMoniker" type="ListOfValuesMoniker" substitutionGroup="domainClassMoniker" />
  <xsd:complexType name="ListOfValuesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ListOfValues instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainClassMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Value -->
  <xsd:element name="value" type="Value" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Value">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" />
        <!-- Property: Description -->
        <xsd:attribute name="description" type="xsd:string" />
        <!-- Property: DisplayName -->
        <xsd:attribute name="displayName" type="xsd:string" />
        <!-- Property: IsFixedValue -->
        <xsd:attribute name="isFixedValue" type="xsd:boolean" />
        <!-- Property: Code -->
        <xsd:attribute name="code" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Value Moniker -->
  <xsd:element name="valueMoniker" abstract="true" type="ValueMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ValueMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Value instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- UniqueConstraint -->
  <xsd:element name="uniqueConstraint" type="UniqueConstraint" substitutionGroup="core:modelElement" />
  <xsd:complexType name="UniqueConstraint">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: UniqueConstraintReferencesAttributes -->
          <xsd:element name="attributes" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of UniqueConstraintReferencesAttributes</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="uniqueConstraintReferencesAttributes">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from UniqueConstraintReferencesAttributes needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="attributeMoniker" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" use="required" />
        <!-- Property: Description -->
        <xsd:attribute name="description" type="xsd:string" />
        <!-- Property: DisplayName -->
        <xsd:attribute name="displayName" type="xsd:string" />
        <!-- Property: IsNaturalKey -->
        <xsd:attribute name="isNaturalKey" type="xsd:boolean" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- UniqueConstraint Moniker -->
  <xsd:element name="uniqueConstraintMoniker" type="UniqueConstraintMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="UniqueConstraintMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for UniqueConstraint instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Attribute -->
  <xsd:element name="attribute" type="Attribute" substitutionGroup="domainTypeBase" />
  <xsd:complexType name="Attribute">
    <xsd:complexContent>
      <xsd:extension base="DomainTypeBase">
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" use="required" />
        <!-- Property: Description -->
        <xsd:attribute name="description" type="xsd:string" />
        <!-- Property: DisplayName -->
        <xsd:attribute name="displayName" type="xsd:string" />
        <!-- Property: Required -->
        <xsd:attribute name="required" type="xsd:boolean" />
        <!-- Property: Calculated -->
        <xsd:attribute name="calculated" type="xsd:boolean" />
        <!-- Property: DisplayedForAssociations -->
        <xsd:attribute name="displayedForAssociations" type="xsd:boolean" />
        <!-- Property: AccessModifier -->
        <xsd:attribute name="accessModifier" type="AttributeAccessModifier" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Attribute Moniker -->
  <xsd:element name="attributeMoniker" type="AttributeMoniker" substitutionGroup="domainTypeBaseMoniker" />
  <xsd:complexType name="AttributeMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Attribute instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainTypeBaseMoniker">
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainClass -->
  <xsd:element name="domainClass" type="DomainClass" substitutionGroup="domainElements" />
  <xsd:complexType name="DomainClass">
    <xsd:complexContent>
      <xsd:extension base="DomainElements">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: Embedding -->
          <xsd:element name="parentDomainClass" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instance of Embedding</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="embedding" minOccurs="0" maxOccurs="1">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of Embedding needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: Reference -->
          <xsd:element name="referenceTargetClasses" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of Reference</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="reference" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of Reference needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DisplayName -->
        <xsd:attribute name="displayName" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainClass Moniker -->
  <xsd:element name="domainClassMoniker" type="DomainClassMoniker" substitutionGroup="domainElementsMoniker" />
  <xsd:complexType name="DomainClassMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainClass instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainElementsMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Module -->
  <xsd:element name="module" type="Module" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Module">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: ModuleHasChildModules -->
          <xsd:element name="childModules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ModuleHasChildModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="moduleHasChildModules">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from ModuleHasChildModules needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="module" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: ModuleHasDomainElements -->
          <xsd:element name="domainElements" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ModuleHasDomainElements</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="moduleHasDomainElements">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from ModuleHasDomainElements needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="domainElements" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: ModuleHasAggregates -->
          <xsd:element name="aggregates" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ModuleHasAggregates</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="moduleHasAggregates">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from ModuleHasAggregates needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="aggregate" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: ModuleHasCRUDApplicationServices -->
          <xsd:element name="cRUDApplicationServices" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ModuleHasCRUDApplicationServices</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="moduleHasCRUDApplicationServices">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from ModuleHasCRUDApplicationServices needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="cRUDApplicationService" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" use="required" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Module Moniker -->
  <xsd:element name="moduleMoniker" type="ModuleMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModuleMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Module instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainService -->
  <xsd:element name="domainService" type="DomainService" substitutionGroup="domainElements" />
  <xsd:complexType name="DomainService">
    <xsd:complexContent>
      <xsd:extension base="DomainElements">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainService Moniker -->
  <xsd:element name="domainServiceMoniker" type="DomainServiceMoniker" substitutionGroup="domainElementsMoniker" />
  <xsd:complexType name="DomainServiceMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainService instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainElementsMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainElements -->
  <xsd:element name="domainElements" abstract="true" type="DomainElements" substitutionGroup="core:modelElement" />
  <xsd:complexType name="DomainElements" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: DomainElementsHasMethods -->
          <xsd:element name="methods" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of DomainElementsHasMethods</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="domainElementsHasMethods">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from DomainElementsHasMethods needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="method" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: Inheritance -->
          <xsd:element name="sucessors" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of Inheritance</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="inheritance">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from Inheritance needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="domainElementsMoniker" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: DomainElementsHasBusinessConstraints -->
          <xsd:element name="businessConstraints" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of DomainElementsHasBusinessConstraints</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="domainElementsHasBusinessConstraints">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from DomainElementsHasBusinessConstraints needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="businessConstraint" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" />
        <!-- Property: Description -->
        <xsd:attribute name="description" type="xsd:string" />
        <!-- Property: IsAbstract -->
        <xsd:attribute name="isAbstract" type="xsd:boolean" />
        <!-- Property: AccessModifier -->
        <xsd:attribute name="accessModifier" type="DomainElementAccessModifier" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainElements Moniker -->
  <xsd:element name="domainElementsMoniker" abstract="true" type="DomainElementsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="DomainElementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainElements instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Repository -->
  <xsd:element name="repository" type="Repository" substitutionGroup="domainElements" />
  <xsd:complexType name="Repository">
    <xsd:complexContent>
      <xsd:extension base="DomainElements">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Repository Moniker -->
  <xsd:element name="repositoryMoniker" type="RepositoryMoniker" substitutionGroup="domainElementsMoniker" />
  <xsd:complexType name="RepositoryMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Repository instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainElementsMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ValueObject -->
  <xsd:element name="valueObject" type="ValueObject" substitutionGroup="domainClass" />
  <xsd:complexType name="ValueObject">
    <xsd:complexContent>
      <xsd:extension base="DomainClass">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: ValueObjectHasAttributes -->
          <xsd:element name="attributes" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ValueObjectHasAttributes</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="valueObjectHasAttributes">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from ValueObjectHasAttributes needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="attribute" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Mutable -->
        <xsd:attribute name="mutable" type="xsd:boolean" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ValueObject Moniker -->
  <xsd:element name="valueObjectMoniker" type="ValueObjectMoniker" substitutionGroup="domainClassMoniker" />
  <xsd:complexType name="ValueObjectMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ValueObject instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainClassMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Method -->
  <xsd:element name="method" type="Method" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Method">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: MethodHasMethodParameters -->
          <xsd:element name="methodParameters" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of MethodHasMethodParameters</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="methodHasMethodParameters">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from MethodHasMethodParameters needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="methodParameter" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: MethodHasReturnType -->
          <xsd:element name="returnType" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instance of MethodHasReturnType</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="1" >
                  <xsd:element ref="methodHasReturnType">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from MethodHasReturnType needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="methodType" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" />
        <!-- Property: AccessModifier -->
        <xsd:attribute name="accessModifier" type="MethodAccessModifier" />
        <!-- Property: IsStatic -->
        <xsd:attribute name="isStatic" type="xsd:boolean" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Method Moniker -->
  <xsd:element name="methodMoniker" abstract="true" type="MethodMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="MethodMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Method instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- MethodParameter -->
  <xsd:element name="methodParameter" type="MethodParameter" substitutionGroup="methodType" />
  <xsd:complexType name="MethodParameter">
    <xsd:complexContent>
      <xsd:extension base="MethodType">
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- MethodParameter Moniker -->
  <xsd:element name="methodParameterMoniker" abstract="true" type="MethodParameterMoniker" substitutionGroup="methodTypeMoniker" />
  <xsd:complexType name="MethodParameterMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for MethodParameter instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="MethodTypeMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainTypeBase -->
  <xsd:element name="domainTypeBase" abstract="true" type="DomainTypeBase" substitutionGroup="core:modelElement" />
  <xsd:complexType name="DomainTypeBase" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: DomainDataType -->
          <xsd:element name="domainDataType" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instance of DomainDataType</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="1" >
                  <xsd:element ref="domainDataType">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from DomainDataType needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="valueObjectMoniker" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Property: BasicDataType -->
        <xsd:attribute name="basicDataType" type="BasicDataTypes" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainTypeBase Moniker -->
  <xsd:element name="domainTypeBaseMoniker" abstract="true" type="DomainTypeBaseMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="DomainTypeBaseMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainTypeBase instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainType -->
  <xsd:element name="domainType" abstract="true" type="DomainType" substitutionGroup="core:modelElement" />
  <xsd:complexType name="DomainType" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: DomainClasses -->
          <xsd:element name="domainClass" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instance of DomainClasses</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="1" >
                  <xsd:element ref="domainClasses">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from DomainClasses needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="domainClassMoniker" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Property: BasicDataType -->
        <xsd:attribute name="basicDataType" type="BasicDataTypes" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainType Moniker -->
  <xsd:element name="domainTypeMoniker" abstract="true" type="DomainTypeMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="DomainTypeMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainType instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- MethodType -->
  <xsd:element name="methodType" type="MethodType" substitutionGroup="domainType" />
  <xsd:complexType name="MethodType">
    <xsd:complexContent>
      <xsd:extension base="DomainType">
        <!-- Property: IsList -->
        <xsd:attribute name="isList" type="xsd:boolean" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- MethodType Moniker -->
  <xsd:element name="methodTypeMoniker" abstract="true" type="MethodTypeMoniker" substitutionGroup="domainTypeMoniker" />
  <xsd:complexType name="MethodTypeMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for MethodType instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DomainTypeMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BusinessConstraint -->
  <xsd:element name="businessConstraint" type="BusinessConstraint" substitutionGroup="core:modelElement" />
  <xsd:complexType name="BusinessConstraint">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" />
        <!-- Property: Description -->
        <xsd:attribute name="description" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BusinessConstraint Moniker -->
  <xsd:element name="businessConstraintMoniker" abstract="true" type="BusinessConstraintMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="BusinessConstraintMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for BusinessConstraint instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Aggregate -->
  <xsd:element name="aggregate" type="Aggregate" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Aggregate">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: AggregateHasDomainClasses -->
          <xsd:element name="domainClasses" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of AggregateHasDomainClasses</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="aggregateHasDomainClasses" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of AggregateHasDomainClasses needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Aggregate Moniker -->
  <xsd:element name="aggregateMoniker" type="AggregateMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="AggregateMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Aggregate instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CRUDApplicationService -->
  <xsd:element name="cRUDApplicationService" type="CRUDApplicationService" substitutionGroup="core:modelElement" />
  <xsd:complexType name="CRUDApplicationService">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: CRUDApplicationServiceHasDomainClasses -->
          <xsd:element name="domainClasses" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of CRUDApplicationServiceHasDomainClasses</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="cRUDApplicationServiceHasDomainClasses">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from CRUDApplicationServiceHasDomainClasses needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="domainClass" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: CRUDApplicationServiceHasAggregates -->
          <xsd:element name="aggregates" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of CRUDApplicationServiceHasAggregates</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="cRUDApplicationServiceHasAggregates">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from CRUDApplicationServiceHasAggregates needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="aggregate" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CRUDApplicationService Moniker -->
  <xsd:element name="cRUDApplicationServiceMoniker" type="CRUDApplicationServiceMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="CRUDApplicationServiceMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for CRUDApplicationService instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ListOfValuesHasValues -->
  <xsd:element name="listOfValuesHasValues" abstract="true" type="ListOfValuesHasValues" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ListOfValuesHasValues" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Value -->
          <xsd:element ref="value" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ListOfValuesHasValues Moniker -->
  <xsd:element name="listOfValuesHasValuesMoniker" abstract="true" type="ListOfValuesHasValuesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ListOfValuesHasValuesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ListOfValuesHasValues instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasUniqueConstraints -->
  <xsd:element name="entityHasUniqueConstraints" abstract="true" type="EntityHasUniqueConstraints" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasUniqueConstraints" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end UniqueConstraint -->
          <xsd:element ref="uniqueConstraint" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasUniqueConstraints Moniker -->
  <xsd:element name="entityHasUniqueConstraintsMoniker" abstract="true" type="EntityHasUniqueConstraintsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasUniqueConstraintsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasUniqueConstraints instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Association -->
  <xsd:element name="association" abstract="true" type="Association" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Association" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end DomainClass -->
          <xsd:element ref="domainClassMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Property: SourceRoleName -->
        <xsd:attribute name="sourceRoleName" type="xsd:string" />
        <!-- Property: SourceMultiplicity -->
        <xsd:attribute name="sourceMultiplicity" type="AssociationMultiplicityEnum" />
        <!-- Property: TargetRoleName -->
        <xsd:attribute name="targetRoleName" type="xsd:string" />
        <!-- Property: TargetMultiplicity -->
        <xsd:attribute name="targetMultiplicity" type="AssociationMultiplicityEnum" />
        <!-- Property: NavigationDirection -->
        <xsd:attribute name="navigationDirection" type="NavigationDirection" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Association Moniker -->
  <xsd:element name="associationMoniker" abstract="true" type="AssociationMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="AssociationMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Association instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModelHasModules -->
  <xsd:element name="bizAppDomainModelHasModules" abstract="true" type="BizAppDomainModelHasModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="BizAppDomainModelHasModules" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Module -->
          <xsd:element ref="module" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModelHasModules Moniker -->
  <xsd:element name="bizAppDomainModelHasModulesMoniker" abstract="true" type="BizAppDomainModelHasModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="BizAppDomainModelHasModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for BizAppDomainModelHasModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasChildModules -->
  <xsd:element name="moduleHasChildModules" abstract="true" type="ModuleHasChildModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ModuleHasChildModules" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Module -->
          <xsd:element ref="module" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasChildModules Moniker -->
  <xsd:element name="moduleHasChildModulesMoniker" abstract="true" type="ModuleHasChildModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModuleHasChildModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ModuleHasChildModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModelHasDomainElements -->
  <xsd:element name="bizAppDomainModelHasDomainElements" abstract="true" type="BizAppDomainModelHasDomainElements" substitutionGroup="core:modelElement" />
  <xsd:complexType name="BizAppDomainModelHasDomainElements" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end DomainElements -->
          <xsd:element ref="domainElements" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModelHasDomainElements Moniker -->
  <xsd:element name="bizAppDomainModelHasDomainElementsMoniker" abstract="true" type="BizAppDomainModelHasDomainElementsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="BizAppDomainModelHasDomainElementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for BizAppDomainModelHasDomainElements instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasDomainElements -->
  <xsd:element name="moduleHasDomainElements" abstract="true" type="ModuleHasDomainElements" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ModuleHasDomainElements" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end DomainElements -->
          <xsd:element ref="domainElements" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasDomainElements Moniker -->
  <xsd:element name="moduleHasDomainElementsMoniker" abstract="true" type="ModuleHasDomainElementsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModuleHasDomainElementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ModuleHasDomainElements instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Embedding -->
  <xsd:element name="embedding" type="Embedding" substitutionGroup="association" />
  <xsd:complexType name="Embedding">
    <xsd:complexContent>
      <xsd:extension base="Association">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Embedding Moniker -->
  <xsd:element name="embeddingMoniker" abstract="true" type="EmbeddingMoniker" substitutionGroup="associationMoniker" />
  <xsd:complexType name="EmbeddingMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Embedding instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AssociationMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Reference -->
  <xsd:element name="reference" type="Reference" substitutionGroup="association" />
  <xsd:complexType name="Reference">
    <xsd:complexContent>
      <xsd:extension base="Association">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Reference Moniker -->
  <xsd:element name="referenceMoniker" abstract="true" type="ReferenceMoniker" substitutionGroup="associationMoniker" />
  <xsd:complexType name="ReferenceMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Reference instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AssociationMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- MethodHasMethodParameters -->
  <xsd:element name="methodHasMethodParameters" abstract="true" type="MethodHasMethodParameters" substitutionGroup="core:modelElement" />
  <xsd:complexType name="MethodHasMethodParameters" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end MethodParameter -->
          <xsd:element ref="methodParameter" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- MethodHasMethodParameters Moniker -->
  <xsd:element name="methodHasMethodParametersMoniker" abstract="true" type="MethodHasMethodParametersMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="MethodHasMethodParametersMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for MethodHasMethodParameters instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainElementsHasMethods -->
  <xsd:element name="domainElementsHasMethods" abstract="true" type="DomainElementsHasMethods" substitutionGroup="core:modelElement" />
  <xsd:complexType name="DomainElementsHasMethods" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Method -->
          <xsd:element ref="method" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainElementsHasMethods Moniker -->
  <xsd:element name="domainElementsHasMethodsMoniker" abstract="true" type="DomainElementsHasMethodsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="DomainElementsHasMethodsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainElementsHasMethods instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Inheritance -->
  <xsd:element name="inheritance" abstract="true" type="Inheritance" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Inheritance" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end DomainElements -->
          <xsd:element ref="domainElementsMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Inheritance Moniker -->
  <xsd:element name="inheritanceMoniker" abstract="true" type="InheritanceMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="InheritanceMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Inheritance instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainDataType -->
  <xsd:element name="domainDataType" abstract="true" type="DomainDataType" substitutionGroup="core:modelElement" />
  <xsd:complexType name="DomainDataType" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end ValueObject -->
          <xsd:element ref="valueObjectMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainDataType Moniker -->
  <xsd:element name="domainDataTypeMoniker" abstract="true" type="DomainDataTypeMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="DomainDataTypeMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainDataType instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainClasses -->
  <xsd:element name="domainClasses" abstract="true" type="DomainClasses" substitutionGroup="core:modelElement" />
  <xsd:complexType name="DomainClasses" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end DomainClass -->
          <xsd:element ref="domainClassMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainClasses Moniker -->
  <xsd:element name="domainClassesMoniker" abstract="true" type="DomainClassesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="DomainClassesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainClasses instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- MethodHasReturnType -->
  <xsd:element name="methodHasReturnType" abstract="true" type="MethodHasReturnType" substitutionGroup="core:modelElement" />
  <xsd:complexType name="MethodHasReturnType" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end MethodType -->
          <xsd:element ref="methodType" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- MethodHasReturnType Moniker -->
  <xsd:element name="methodHasReturnTypeMoniker" abstract="true" type="MethodHasReturnTypeMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="MethodHasReturnTypeMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for MethodHasReturnType instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ValueObjectHasAttributes -->
  <xsd:element name="valueObjectHasAttributes" abstract="true" type="ValueObjectHasAttributes" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ValueObjectHasAttributes" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Attribute -->
          <xsd:element ref="attribute" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ValueObjectHasAttributes Moniker -->
  <xsd:element name="valueObjectHasAttributesMoniker" abstract="true" type="ValueObjectHasAttributesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ValueObjectHasAttributesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ValueObjectHasAttributes instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasAttributes -->
  <xsd:element name="entityHasAttributes" abstract="true" type="EntityHasAttributes" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasAttributes" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Attribute -->
          <xsd:element ref="attribute" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasAttributes Moniker -->
  <xsd:element name="entityHasAttributesMoniker" abstract="true" type="EntityHasAttributesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasAttributesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasAttributes instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- UniqueConstraintReferencesAttributes -->
  <xsd:element name="uniqueConstraintReferencesAttributes" abstract="true" type="UniqueConstraintReferencesAttributes" substitutionGroup="core:modelElement" />
  <xsd:complexType name="UniqueConstraintReferencesAttributes" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Attribute -->
          <xsd:element ref="attributeMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- UniqueConstraintReferencesAttributes Moniker -->
  <xsd:element name="uniqueConstraintReferencesAttributesMoniker" abstract="true" type="UniqueConstraintReferencesAttributesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="UniqueConstraintReferencesAttributesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for UniqueConstraintReferencesAttributes instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainElementsHasBusinessConstraints -->
  <xsd:element name="domainElementsHasBusinessConstraints" abstract="true" type="DomainElementsHasBusinessConstraints" substitutionGroup="core:modelElement" />
  <xsd:complexType name="DomainElementsHasBusinessConstraints" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end BusinessConstraint -->
          <xsd:element ref="businessConstraint" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- DomainElementsHasBusinessConstraints Moniker -->
  <xsd:element name="domainElementsHasBusinessConstraintsMoniker" abstract="true" type="DomainElementsHasBusinessConstraintsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="DomainElementsHasBusinessConstraintsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for DomainElementsHasBusinessConstraints instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModelHasAggregates -->
  <xsd:element name="bizAppDomainModelHasAggregates" abstract="true" type="BizAppDomainModelHasAggregates" substitutionGroup="core:modelElement" />
  <xsd:complexType name="BizAppDomainModelHasAggregates" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Aggregate -->
          <xsd:element ref="aggregate" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModelHasAggregates Moniker -->
  <xsd:element name="bizAppDomainModelHasAggregatesMoniker" abstract="true" type="BizAppDomainModelHasAggregatesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="BizAppDomainModelHasAggregatesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for BizAppDomainModelHasAggregates instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasAggregates -->
  <xsd:element name="moduleHasAggregates" abstract="true" type="ModuleHasAggregates" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ModuleHasAggregates" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Aggregate -->
          <xsd:element ref="aggregate" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasAggregates Moniker -->
  <xsd:element name="moduleHasAggregatesMoniker" abstract="true" type="ModuleHasAggregatesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModuleHasAggregatesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ModuleHasAggregates instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- AggregateHasDomainClasses -->
  <xsd:element name="aggregateHasDomainClasses" type="AggregateHasDomainClasses" substitutionGroup="core:modelElement" />
  <xsd:complexType name="AggregateHasDomainClasses">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end DomainClass -->
          <xsd:element ref="domainClass" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Property: IsRoot -->
        <xsd:attribute name="isRoot" type="xsd:boolean" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- AggregateHasDomainClasses Moniker -->
  <xsd:element name="aggregateHasDomainClassesMoniker" abstract="true" type="AggregateHasDomainClassesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="AggregateHasDomainClassesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for AggregateHasDomainClasses instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModelHasCRUDApplicationServices -->
  <xsd:element name="bizAppDomainModelHasCRUDApplicationServices" abstract="true" type="BizAppDomainModelHasCRUDApplicationServices" substitutionGroup="core:modelElement" />
  <xsd:complexType name="BizAppDomainModelHasCRUDApplicationServices" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end CRUDApplicationService -->
          <xsd:element ref="cRUDApplicationService" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- BizAppDomainModelHasCRUDApplicationServices Moniker -->
  <xsd:element name="bizAppDomainModelHasCRUDApplicationServicesMoniker" abstract="true" type="BizAppDomainModelHasCRUDApplicationServicesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="BizAppDomainModelHasCRUDApplicationServicesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for BizAppDomainModelHasCRUDApplicationServices instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasCRUDApplicationServices -->
  <xsd:element name="moduleHasCRUDApplicationServices" abstract="true" type="ModuleHasCRUDApplicationServices" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ModuleHasCRUDApplicationServices" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end CRUDApplicationService -->
          <xsd:element ref="cRUDApplicationService" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasCRUDApplicationServices Moniker -->
  <xsd:element name="moduleHasCRUDApplicationServicesMoniker" abstract="true" type="ModuleHasCRUDApplicationServicesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModuleHasCRUDApplicationServicesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ModuleHasCRUDApplicationServices instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CRUDApplicationServiceHasDomainClasses -->
  <xsd:element name="cRUDApplicationServiceHasDomainClasses" abstract="true" type="CRUDApplicationServiceHasDomainClasses" substitutionGroup="core:modelElement" />
  <xsd:complexType name="CRUDApplicationServiceHasDomainClasses" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end DomainClass -->
          <xsd:element ref="domainClass" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CRUDApplicationServiceHasDomainClasses Moniker -->
  <xsd:element name="cRUDApplicationServiceHasDomainClassesMoniker" abstract="true" type="CRUDApplicationServiceHasDomainClassesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="CRUDApplicationServiceHasDomainClassesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for CRUDApplicationServiceHasDomainClasses instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CRUDApplicationServiceHasAggregates -->
  <xsd:element name="cRUDApplicationServiceHasAggregates" abstract="true" type="CRUDApplicationServiceHasAggregates" substitutionGroup="core:modelElement" />
  <xsd:complexType name="CRUDApplicationServiceHasAggregates" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Aggregate -->
          <xsd:element ref="aggregate" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CRUDApplicationServiceHasAggregates Moniker -->
  <xsd:element name="cRUDApplicationServiceHasAggregatesMoniker" abstract="true" type="CRUDApplicationServiceHasAggregatesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="CRUDApplicationServiceHasAggregatesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for CRUDApplicationServiceHasAggregates instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Enum EntityTypeEnum -->
  <xsd:simpleType name="EntityTypeEnum">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Referenced"/>
      <xsd:enumeration value="Event"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum AssociationMultiplicityEnum -->
  <xsd:simpleType name="AssociationMultiplicityEnum">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ZeroOrOne"/>
      <xsd:enumeration value="One"/>
      <xsd:enumeration value="ZeroOrMany"/>
      <xsd:enumeration value="OneOrMany"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum BasicDataTypes -->
  <xsd:simpleType name="BasicDataTypes">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Text"/>
      <xsd:enumeration value="Integer"/>
      <xsd:enumeration value="Float"/>
      <xsd:enumeration value="DateTime"/>
      <xsd:enumeration value="Boolean"/>
      <xsd:enumeration value="Decimal"/>
      <xsd:enumeration value="Null"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum NavigationDirection -->
  <xsd:simpleType name="NavigationDirection">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SourceToTarget"/>
      <xsd:enumeration value="Bidirectional"/>
      <xsd:enumeration value="TargetToSource"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum AttributeAccessModifier -->
  <xsd:simpleType name="AttributeAccessModifier">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Public"/>
      <xsd:enumeration value="Private"/>
      <xsd:enumeration value="Protected"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum MethodAccessModifier -->
  <xsd:simpleType name="MethodAccessModifier">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Protected"/>
      <xsd:enumeration value="Public"/>
      <xsd:enumeration value="Private"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum DomainElementAccessModifier -->
  <xsd:simpleType name="DomainElementAccessModifier">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Public"/>
      <xsd:enumeration value="Protected"/>
      <xsd:enumeration value="Private"/>
      <xsd:enumeration value="Internal"/>
      <xsd:enumeration value="ProtectedInternal"/>
    </xsd:restriction>
  </xsd:simpleType>
  
</xsd:schema>

